package cate.game.framework;

import cate.game.common.rpc.RpcListener4Game;
import cate.game.common.rpc.RpcSender4Game;
import cate.game.db.GameMongoDao;
import cate.game.db.MongoCache;
import cate.game.db.sqlite.GameSqlite;
import cp.bi.CpBiClient;
import cp.game.framework.ApiCaller;
import org.springframework.data.mongodb.core.MongoTemplate;

/**
 * 基础设施
 */
public interface GameFacilities {

    ApiCaller getApi();

    void setApi(ApiCaller value);

    GameMongoDao getMongo();

    MongoTemplate getMongoTemplate();

    MongoCache getMongoCache();

    GameSqlite getSqlite();
    void setSqlite(GameSqlite value);

    void setRpcListener(RpcListener4Game v);

    RpcListener4Game getRpcListener();

    void setRpcSender(RpcSender4Game v);

    RpcSender4Game getRpcSender();

    void setBi(CpBiClient biClient);

    CpBiClient getBi();

    void afterGameInitialize();

}
